<template>
    <div class="port-page">
        <!-- 顶部按钮 -->
    <div class="but1">
		<!-- <router-link to="/home">
			<el-button type="info" size='small' class="add btn" style='margin-right: 10px;' icon="menu">首页</el-button>
		</router-link> -->
		<el-button type="primary" @click="$router.back(-1);"class="add btn" style='margin-left: 5px;'  icon="el-icon-caret-left">返回</el-button>
	    <router-link  :to="{path:'/cost/pay',query: {iid:this.zwm,id:this.xsid}}">
                    <el-button class="add btn"  type="primary" icon="el-icon-document" >缴费</el-button>
        </router-link>
        <el-button type="success"  class="add btn" style='margin-top:10px;'  @click="componentsShow('yujiao')" icon="el-icon-edit">预交</el-button>
    </div>
        <!-- 模糊搜索条件 -->

        <div class="search">
          <!--<div class="search-item">
              <el-switch @change="search()"  v-model="iswc" active-color="#13ce66" inactive-color="#ff4949" active-text="缴费完成"  inactive-text="缴费未完成" active-value="Y" inactive-value="N"></el-switch>
          </div>-->
          <div class="search-item">
          	<span>缴费状态</span>
				<el-select v-model="iswc" placeholder="请选择状态" class="code-search" @change="search">
					<el-option :label="v.mc" :value="v.zt" v-for="v in comboxlist"></el-option>
				</el-select>
			</div>
            <div class="search-item">
                <el-input placeholder="请输入学生姓名" class="code-search" v-model="studentName" icon="search"></el-input>
            </div>
            <el-button type="primary" size='small' class="btn" style="border-radius:13px;" :loading="searchLoading" @click="search" icon="el-icon-search"></el-button>
        </div>
        <!-- 数据表格展示区域 -->
        <el-table
            :data="dataList"
            :cell-style="styletest"
            :v-loading="false"
            element-loading-text="拼命加载中"
            border
            stripe
            align="center"
            class="admin-table"
            :row-class-name="tableRowClassName"
            @select="checkSelect"
            @select-all="checkall">

            <div slot='empty'>
                <img src="../../../assets/img/empty.png" style="width:40px;vertical-align: middle;">
                <span style="vertical-align: middle;">暂时还没有内容哦!</span>
            </div>

            <el-table-column
                :prop="v.prop"
                :label="v.label"
                v-for="(v,index) in portTitleList"
                align="center"
                show-overflow-tooltip
                v-if="v.hide != 0"
                :formatter="v.formatter"
                :align="v.align || 'center'"
                :fixed="v.fixed"
                :class-name="v.columnStyle"
                :width="v.width"
                :min-width="v.minWidth"
                :header-align="v.headerAlign || 'center'"
                >
                <template scope="scope">
                    <div slot="reference">
                        <div v-if="scope.column.property == 'zwm'" @click="componentsShow('info1',scope)">
                            <img
                            :src="scope.row.xb == '男' ? $store.state.sexImg.boy : $store.state.sexImg.girl"
                            style="width:20px;vertical-align:middle; float: left;"
                            v-if="scope.column.property == 'zwm'">
                            <span style="vertical-align:middle;">{{ scope.row[scope.column.property] }}</span>
                        </div>
                        <span style="vertical-align:middle;" v-else-if="scope.column.property === ''"></span>
                        <span style="vertical-align:middle;" v-else>{{ scope.row[scope.column.property] }}</span>
                    </div>
                </template>
            </el-table-column>

            <el-table-column label="操作"  min-width = "220px"  align="center" >
                <template scope="scope">
                    <!--<el-button size="small" type="info"  @click="componentsShow(v.type,scope)" v-for="v in portBntList">{{v.name}}</el-button>-->
                    <el-button size="small" type="primary" v-if="scope.row.btnzt.substring(0,1) == 'Y'"  @click="componentsShow('info',scope)">详情</el-button>
                    <el-button size="small" type="warning" v-if="scope.row.btnzt.substring(1,2) == 'Y'" @click="componentsShow('renew',scope)">补交</el-button>
                    <el-button size="small" type="danger"  v-if="scope.row.btnzt.substring(2,3) == 'Y'"  @click="componentsShow('qftz',scope)">催缴通知</el-button>
                </template>
            </el-table-column>
        </el-table>

        <!-- 分页查询区域 -->
        <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page.sync="pageindex"
            :page-sizes="pagesizes"
            :page-size="pagesize"
            :layout="layout"
            :total="total"
            class="class-page">
        </el-pagination>


        <!-- 各个组件显示区域 -->

        <!-- 动画加载 -->
        <LoadingComponent v-show="isLoading"></LoadingComponent>

        <!-- 物品详情 -->
        <DetailsComponent v-if="portComponents.details.toggle"  @close="componentsHide"  :params="portComponents.details.params"></DetailsComponent>
     
        <YujiaoComponent v-if="portComponents.yujiao.toggle"  @close="componentsHide"  :params="this.dataList"></YujiaoComponent>
        <!-- 续交组件 -->
        <RenewComponent v-if="portComponents.renew.toggle"  @close="componentsHide"  :params="portComponents.renew.params"></RenewComponent>

        <!-- 续交详情组件 -->
        <InfoComponent v-if="portComponents.info.toggle"  @close="componentsHide"  :params="portComponents.info.params"></InfoComponent>

        <Info1Component v-if="portComponents.info1.toggle"  @close="componentsHide"  :params="portComponents.info1.params"></Info1Component>

        <QftzComponent v-if="portComponents.qftz.toggle"  @close="componentsHide"  :params="portComponents.qftz.params"></QftzComponent>
        <!-- 新增组件 -->
        <!-- <AddComponent v-if="portComponents.add.toggle" @close="componentsHide"></AddComponent> -->

        <!-- 子路由显示区域 -->
        <router-view class="port-view"></router-view>
    </div>
</template>

<script>
    import { mapState } from 'vuex'
    import LoadingComponent from 'components/loading'
    // import AddComponent from './add'
    import DetailsComponent from './details'
    import RenewComponent from './renew'
    import YujiaoComponent from './yujiao'
    import Info1Component from 'view/educa/classManage/student/info'
    import InfoComponent from './info'
    import QftzComponent from './qftz'

    import qs from 'qs'
    export default {
        components: { LoadingComponent,Info1Component,YujiaoComponent, DetailsComponent, RenewComponent ,InfoComponent ,QftzComponent},
        data () {
            return {
            	zwm:'',
            	xsid:'',
                iswc:'qb',
                studentXh: '',
                studentName: this.$route.query.iid,
                // studentName:'',
                comboxlist:[],
                studentPhone: '',
                studentClass: '',
                time: '',
                /*组件区域*/
                portComponents: {
                    add: {
                        type: 'add',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    details: {
                        type: 'details',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    renew : {
                        type: 'renew',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    info: {
                        type: 'info',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    info1: {
                        type: 'info1',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    qftz: {
                        type: 'qftz',
                        toggle: false,
                        params: '',
                        data: {}
                    },
                    yujiao: {
                        type: 'yujiao',
                        toggle: false,
                        params: '',
                        data: {}
                    }
                },

                multipleDelNum:'', //获取批量选择的数据
                dataList: [],  //表格数据

                /*
                    prop :  接口参数名
                    label : 接口中文名
                    hide : 是否隐藏这一列
                    align : 这一列对齐顺序 ： left,right,center
                    headerAlign : 这一列表头对齐方式 ： left,right,center
                */
                portTitleList: [
                    {
                        prop:'id',
                        label:'id',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'120',
                        headerAlign:'center'
                    },{
                        prop:'zwm',
                        label:'姓名',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },
                    {
                        prop:'spmc',
                        label:'商品名称',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'80',
                        headerAlign:'center'
                    },
                    {
                        prop:'ywm',
                        label:'英文名',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'120',
                        headerAlign:'center'
                    },
                    {
                        prop:'xh',
                        label:'学号',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'120',
                        headerAlign:'center'
                    },{
                        prop:'dh',
                        label:'电话',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },{
                        prop:'bj',
                        label:'班级',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'120',
                        headerAlign:'center'
                    },
                    {
                        prop:'yjje',
                        label:'应缴金额',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'70',
                        headerAlign:'center'
                    },{
                        prop:'je',
                        label:'已缴金额',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'70',
                        headerAlign:'center'
                    },{
                        prop:'qf',
                        label:'欠费',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'50',
                        headerAlign:'center'
                    },
                    {
                        prop:'lqzt',
                        label:'状态',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },
                    {
                        prop:'yuer',
                        label:'账户余额',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'70',
                        headerAlign:'center'
                    },{
                        prop:'zfye',
                        label:'余额支付',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },{
                        prop:'yhj',
                        label:'优惠金额',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },{
                        prop:'zj',
                        label:'直减金额',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'100',
                        headerAlign:'center'
                    },{
                        prop:'sfjfwc',
                        label:'是否缴费完成',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'140',
                        headerAlign:'center'
                    },{
                        prop:'jfr',
                        label:'缴费人',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'120',
                        headerAlign:'center'
                    },
                     {
                        prop:'note',
                        label:'备注',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'',
                        headerAlign:'center'
                    },
                    {
                        prop:'sj',
                        label:'账单时间',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'140',
                        headerAlign:'center'
                    },
                     {
                        prop:'cjcs',
                        label:'催缴次数',
                        hide:1,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'80',
                        headerAlign:'center'
                    },
                    {
                        prop:'ydcs',
                        label:'阅读次数',
                        hide:0,
                        align:'center',
                        fixed:false,
                        width:'',
                        minWidth:'80',
                        headerAlign:'center'
                    },
                ],

                portBntList: [//接口按钮列表
                    {
                        name:'补交',
                        type:'renew'
                    },
                    // {
                    //     name:'物品详情',
                    //     type:'details'
                    // },
                    {
                        name:'缴费详情',
                        type:'info'
                    },

                ],

                /*动画加载*/
                isLoading: true,//动画加载
                searchLoading: false,//搜索按钮触发按钮动画

                /*模糊搜索条件*/
                inputjkname:'' , //  接口名称,

                /*分页属性设置*/
                layout: 'total, sizes, prev, pager, next, jumper',//组件布局
                pageindex: 1,//当前分页页码
                pagesizes: [12, 24, 36, 72],//显示个数的选择器选项
                pagesize: 12,//每页显示条目数
                total: 0,//总条数

                dropDownData:'',
            }
        },
        created () {
        	  if(this.$route.query.iid) {
				if(this.$route.query.frompage == 'zdxq') {
         			this.componentsShow("info");
				}
			}
            //加载页面时调用
            this.$store.dispatch('changeTitle','催缴');//修改title
            this.$store.dispatch('changeRouterIndex','/cost/payjl');//修改路由
            this.getcomboxlist();
            this.search();//分页获取默认数据
            this.isLoading = true;//动画开始
        },
        mounted () {
            this.isLoading = false;//动画结束
        },
        methods: {
        	styletest(boj){
				if (boj.columnIndex==4){
					if (this.dataList[boj.rowIndex].qf>0){
					 return 'color:red'
				  }
				}
				return '';
			},
            tableRowClassName (row, index) {//隔行变色颜色设置
                /*if ( index%4 == 0) {
                    return "table-cell-green";
                }else if( index%4 == 1 ){
                    return "table-cell-yellow";
                }else if( index%4 == 2 ){
                    return "table-cell-red";
                }else{
                    return "table-cell-blue"
                }*/
            },
            tableCellControl (scope) {//表格单元格控制CSS样式
//              if (scope.row.qf>0 && scope.column.property == "qf") {
//                  return {
//                      color:"red",
//                  }
//              }
            },

            cktz(type,scope){
              var params3 = qs.stringify({
  							xsid:scope.row.id
  						});
              this.axios.post(this.$store.state.api + 'order/jftz',params3)
              .then( res => {
                  // console.log(res)
              }).catch( res => {
              })
            },
            getcomboxlist() {
				var logininfo = JSON.parse(localStorage.logininfo);
              this.searchLoading = true;
             var params2 = qs.stringify({
                     yhid: logininfo.id,
						xxid: logininfo.xxid
               })
             //执行
                 this.axios.post(this.$store.state.api + 'order/getwczt',  params2 )
                 .then(res => {
					let data = res.data.data;
					let list = data.list;
					this.comboxlist = list;
                 }).catch(res => {
                  this.searchLoading = false;
				})
			},
            search () {//查询搜索触发事件
                this.searchLoading = true;
                var logininfo = JSON.parse(localStorage.logininfo) ;
                var params3 = qs.stringify({
                  iswc:this.iswc,
                  keyword:this.studentName,
                  pageindex: this.pageindex,
                  pagesize: this.pagesize,
                  yhid: logininfo.id,
                  xxid:logininfo.xxid
        		});
                this.axios.post(this.$store.state.api + 'order/list',params3)
                .then( res => {
                	console.log(res,'11111111111')
                    let data = res.data.data;
                    let list = data.list;
                    this.total = data.totalPage;
                    this.dataList = list;
                    this.xsid=res.data.data.list[0].xsid;
                    this.zwm=res.data.data.list[0].zwm;
                    this.searchLoading = false;
                }).catch( res => {
                    this.searchLoading = false;
                })
            },



            handleSizeChange (val) {//每页显示条数触发事件
                this.pagesize = val;
                this.pageindex = 1;
                this.search();
            },

            handleCurrentChange (val) {//分页触发事件
                this.search();
            },
            checkSelect (selection, row) {//点击单选select触发事件
                console.log(selection, row)
                let strID = [];
                selection.forEach(function(v,i){
                    strID.push(v.id)
                })
                this.multipleDelNum = strID.join(",");
            },
            checkall (selection) {//点击全选select触发事件
                // console.log(selection)
                let strID = [];

                selection.forEach(function(v,i){
                    strID.push(v.id)
                })
                this.multipleDelNum = strID.join(",");
            },

            /* 组件的弹框  */
            componentsShow (type,data) { //显示组件
                console.log(type,data,11111111111111111)
                for ( let i in this.portComponents ) {
                    if (type == this.portComponents[i].type) {
                        console.log(this.portComponents[i])

                        this.portComponents[i].toggle = true;
                        this.portComponents[i].params = data;

                        if (this.portComponents[i].data.type == 'single') {
                            this.portComponents[i].data.index = data.row.id

                        }else if(this.portComponents[i].data.type == 'multiple'){
                            this.portComponents[i].data.index = this.multipleDelNum;

                        }else{
                            return;
                        }
                        return;
                    }
                }

            },
            componentsHide (setting) { //关闭组件
                console.log(setting)
                 this.search();
                 this.$store.dispatch('changeTitle','补交账单管理');//修改title
                this.portComponents.info1.toggle=false;
                for ( let i in this.portComponents ) {
                    if (setting.type == this.portComponents[i].type) {
                        this.portComponents[i].toggle = false;

                        this.search();
                        if (!setting.cancel) {
                           this.search();
                        }
                        return;
                    }
                }
            }

        },
        computed: {
            multipleDeleteDisabled () {
                console.log(this.multipleDelNum)
                if (this.multipleDelNum) {
                    return false;
                }else{
                    return true
                }
            }
        }
    }
</script>

<style lang="less" scoped>
    .port-page {
        font-size:12px;
        position:relative;
        .btn {
            height: 30px;
            padding:0 10px;
            margin-top: 8px;
        }
        .submit {
            width: 80px;
        }
        .code-search {
            height: 30px;
            margin:10px 0 10px 0;
            min-width: 100px;
			max-width: 135px;
        }
        .admin-table {
            margin-top:10px;
        }
        .class-page {
            text-align: left;
            margin-top:10px;
        }

        .search-item {
            display: inline-block;
        }
        .but1{
			width:30%;
			float: left;
		}
		.search{
			width: 70%;
			float: right;
			text-align: right;
		}
		.el-button+.el-button {
            margin-left: 5px;
        }
    }
</style>
